/**
 * 
 */
package logica.colecciones;
import java.util.ArrayList;
import logica.clases.Pais;
import logica.datatypes.Pais.DataPais_R11;

import java.util.Iterator;
import java.io.Serializable;
/**
 * PaisesAsignados Corresponde a los paises que posee un determinado jugador
 * 
 */
public class PaisesAsignados implements Serializable{
	private ArrayList<Pais> paisesAsignados;
	
	private final static long serialVersionUID = 1;

	public PaisesAsignados() {
		paisesAsignados = new ArrayList<Pais>();
	}
	

	public PaisesAsignados(ArrayList<Pais> paisesAsignados) {
		this.paisesAsignados = paisesAsignados;
	}

	public boolean esVacia(){				
		return paisesAsignados.isEmpty();
	}

	public void insertar(Pais pais){		
		paisesAsignados.add(((Pais)pais));
	}
	
	public int cantPaises(){
		return paisesAsignados.size();
	}

	public boolean existePais(String nombre){
		boolean encontre = false;
        Iterator <Pais> ite= paisesAsignados.iterator(); 
        while(ite.hasNext() && !encontre) {  
            if(((Pais)ite.next()).getNombre() == nombre) 
            	encontre = true;
        }
        return encontre;
	}
	
	public Pais obtenerPais(int numero){
		boolean encontre = false;
		Iterator <Pais> ite= paisesAsignados.iterator();
		Pais pais = null;
	        while(ite.hasNext() && !encontre) { 
	        	pais = (Pais)ite.next(); 
	            if(pais.getNumero()==numero)
	            	encontre = true;
	        } 	
	        return pais;    
	}
	
	public void borrarPais(int numero){
        Iterator <Pais> ite= paisesAsignados.iterator();
        boolean encontre = false;
        
        while(ite.hasNext()&&!encontre) {  
            if(((Pais)ite.next()).getNumero() == numero) {
            	encontre = true;
            	ite.remove(); 
            }
        } 	
	}
	
	public DataPais_R11[] cargaDataPaises(){
		int cant = cantPaises();
		DataPais_R11[] dataPais ;
		dataPais = new DataPais_R11[cant];
		int i=0;
		Iterator <Pais> ite = paisesAsignados.iterator();
		
		while(ite.hasNext()) {
        	Pais pais = (Pais)ite.next(); 
        	dataPais[i] = pais.toDataPais_R11();
        	i++;
        } 
		return dataPais;
	}
	
	public ArrayList<Integer> codPaisesAsig(){
		int cant = cantPaises();
		ArrayList<Integer> listCodPais = new ArrayList<Integer>();
		int i=0;
		Iterator <Pais> ite = paisesAsignados.iterator();
		
		while(ite.hasNext() && (i < cant)) {
        	Pais pais = (Pais)ite.next(); 
        	listCodPais.add(Integer.valueOf(pais.getNumero()));
        	i++;
        } 
		return listCodPais; 
	}
}
